package cn.buk.api.shdl.request.dto;

import java.util.ArrayList;
import java.util.List;

public class PassengerPreference {
//  allowedStops enum
//  用户允许的中
//转点数量
//["0", "1", "2"]，可以不设置，默
//  认为空，表示无偏好
//  changeable boolean 是否允许变更
//  可以不设置，默认为空，表示无偏好。
//  数据来自CAT31，由于目前部分航司
//  未发布相关数据，代理人暂不可用
//  refundable boolean 是否允许退票
//  可以不设置，默认为空，表示无偏
//  好。数据来自CAT33，由于目前部分
//  航司未发布相关数据，代理人暂不可
//          用
//  upgradeable boolean 是否允许升舱
//  可以不设置，默认为空，表示无偏好.
//          由于目前部分航司未发布相关数据，
//  代理人暂不可用

  /**
   * object 服务等级/品牌
   */
  private CabinInfo cabins;

  public CabinInfo getCabins() {
    if (cabins == null) {
      cabins = new CabinInfo();
    }
    return cabins;
  }

  public void setCabins(CabinInfo cabins) {
    this.cabins = cabins;
  }

//
//  downsell boolean
//          是否允许向下
//  销售
//  指定服务等级时可以设置，不设置默
//  认为false，多服务等级时不适用
//  upsell boolean
//          是否允许向上
//  销售
//  指定服务等级时可以设置，不设置默
//  认为false，多服务等级时不适用

  /**
   *    flightsAllowedMarketingCarriers array
   *   允许的Marketing Carrier
   *   可以不设置，默认为空，表示允许所有市场方航空公司，设置后不能使用flightsForbiddenMarketingCarriers
   */
  private List<String> flightsAllowedMarketingCarriers;

  public List<String> getFlightsAllowedMarketingCarriers() {
    if (flightsAllowedMarketingCarriers == null) {
      flightsAllowedMarketingCarriers = new ArrayList<>();
    }
    return flightsAllowedMarketingCarriers;
  }

  public void setFlightsAllowedMarketingCarriers(List<String> flightsAllowedMarketingCarriers) {
    this.flightsAllowedMarketingCarriers = flightsAllowedMarketingCarriers;
  }

//  flightsForbiddenMarketingCarriers array
//  不允许的MarketingCarrier
//  可以不设置，默认为空，表示允许所有市场方航空公司，设置后不能使用flightsAllowedMarketingCarriers
//
//  flightsAllowedOperatingCarriers array
//  允许的Operating Carriers
//  可以不设置，默认为空，表示允许所有承运方航空公司，设置后不能使用flightsForbiddenOperatingCarriers

//  flightsForbiddenOperatingCarriers array
//  不允许的Operating Carriers
//  可以不设置，默认为空，表示允许所有承运方航空公司，设置后不能使用flightsAllowedOperatingCarriers

//  flightsRequiredOperatingCarriers array
//  必须的OperatingCarriers
//  可以不设置，默认为空，表示无承运人偏好，设置后表示每一条搜索结果中必须包含有这些OperatingCarriers之一

//  flightsRequiredMarketingCarriers array
//  必须的Marketing Carriers
//  可以不设置，默认为空，表示无市场方航空公司偏好，设置后表示每一条搜索结果中必须包含有这些MarketingCarriers 之一

//  faresAllowedCarriers array
//  允许的filling
//          Carrier
//  可以不设置，默认为空，表示可以使
//  用所有航空公司发布的运价；设置后
//          表示只能使用这些航空公司的运价
//  faresForbiddenCarriers array
//  不允许的filling
//          Carrier
//  可以不设置，默认为空，表示可以使
//  用所有航空公司发布的运价；设置后
//          表示不能使用这些航空公司的运价
//  noCodeshare boolean
//          是否允许代码
//  共享
//  可以不设置，默认为false，表示允许
//          返回代码共享航班
//  noOvernightStay boolean
//          是否允许过夜
//  航班
//  可以不设置，默认为false，表示允许
//  返回过夜航班。过夜航班设置为跨天
//  且中转时间在4 小时以上的联程航
//  班
//  lowestFareMode enum 低价模式
//  enum: ["NORMAL", "ALLCABIN"]，
//  其中NORMAL 表示最低价模式，
//  ALLCABIN 为全舱位模式，不设置
//          时默认为最低价模式
}
